#ifndef GAME_H
#define GAME_H
#include "MyMath.h"
#include "Camera.h"
#include "Texture.h"
#include "ParticleSystem.h"
#include <vector>
class Game
{
private:
	static Game* instance;
	int iScreenWidth, iScreenHeight;
	int vs,fs,prg;
	Matrix mxModelView, mxProjection, mxModelViewProjection;
	unsigned int vboId;
	unsigned int texID;
	int mvMatrix;
	int pMatrix;
	int uniformColor;
	int uniformLightPosition;
	int uniformLightDiffuse;
	int uniformAmbient;
	int uniformTexture;
	int posAttribute;
	int normalAttribute;
	int texCoordAttribute;
	Camera camera;
	Texture etcTest;
	std::vector<Firework*> fireworks;
	FireworkShader fireworkShader;
	unsigned int fireworkTexID;

public:
	static void CreateInstance();
	static Game* GetInstance();
	void Init(int width, int height);
	void Release();
	void Update(long timeElapsed);
	void Render();
	int GetScreenWidth();
	int GetScreenHeight();
	void DrawCircle(float x, float y, float radius, float r, float g, float b);
	void DrawFireworks();
	void OnKeyDown(int key);
};
#endif